/* jshint esversion: 6 */

import axios from 'axios';
import Cookies from "js-cookie";
import config from './config';
import router from '@/router';
import { Toast } from 'vant';

export default function $axios(options) {
    return new Promise((resolve, reject) => {
        const instance = axios.create({...config });
        console.log(instance);
        // request 拦截器
        instance.interceptors.request.use(
            config => {
                // 在发送之前做点什么
                // let auth_token = Cookies.get('ticket');
                // if (auth_token) {
                //     config.headers.ticket = auth_token;
                // } else {
                //     // let loginpage = Cookies.get('user');
                //     // if (loginpage) {
                //     // router.push('/home');
                //     // }
                //     //alert("没有ticket")
                // }
                // if (config.method === 'post') {}
                return config;
            },
            error => {
                // 判断请求超时
                if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
                    Toast("信号不好，请求超时")
                }
            }

        );

        // response 拦截器
        instance.interceptors.response.use(
            response => {
                //对响应数据做点什么
                let data;
                //alert(0)
                if (response.data == undefined) {
                    data = JSON.parse(response.request.responseText);
                    //alert(1)
                } else {
                    data = response.data;
                    //alert(2)
                }
                return data;
            },
            err => {
                //alert(3)
                if (err && err.response) {
                    //alert(4)
                    //console.log(err)
                } // 返回接口返回的错误信息
                return Promise.reject(err);
            }
        );

        // 请求处理
        instance(options).then(res => {
            resolve(res);
            return false;
        }).catch(error => {
            alert("服务器错误!")
            reject(error);
        });
    });
}